package Day12_String类;

/*  没有封装时,非法数据也会直接赋值给成员变量,不安全
    很多属性是私有的,不能暴露

    如何进行封装:
    private关键字:表示私有,被private修饰的内容只能本类使用,其他类不能使用.
                 可以修饰成员变量和成员方法.
    1.让成员变量私有;
    2.提供相应的访问方式(定义方法):
             获取变量:getxxx(){}
             修改变量:setxxx(){}

*/
public class 封装_private {
    public static void main(String[] args) {
        person p = new person();
        p.setName("张研");
        //p.age = -18; //非法的数据,不安全
        p.setAge(18);

        p.eat();
    }
}

class person{
    //将成员变量私有
    private String name;
    private int age;

    //获取变量的方法 get
    public String getName() {

        return name; //name是成员变量,方法内没有定义name name就近指向成员变量 private String name
    }

    //修改变量的方法 set
    public void setName(String name) {

        this.name = name;
    }

    //获取变量的方法 get
    public int getAge() {

        return age;
    }

    //修改变量的方法 set
    public void setAge(int age) {

        this.age = age;
    }

    public void eat(){

        System.out.println(name+","+age+"在吃饭");
    }
}
